package ArrayTest;

import java.util.Scanner;

public class Test1 {
    /*
    给出一个有序的整数数组 A 和有序的整数数组 B ，请将数组 B 合并到数组 A 中，变成一个有序的升序数组
    A 数组在[0,m-1]的范围也是有序的
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数组A的数据个数:");
        int m = sc.nextInt();
        System.out.println("请输入数组A的数据:");
        int[] A = new int[m];
        for (int i = 0; i <m ; i++) {
            A[i] = sc.nextInt();
        }
        System.out.println("请输入数组B的数据个数:");
        int n = sc.nextInt();
        System.out.println("请输入数据B的数据:");
        int[] B =new int[n];
        for (int i = 0; i <n ; i++) {
            B[i] = sc.nextInt();
        }
        System.out.println("合并后的数组A为:");
        getArray(A,B,m,n);
    }
    public static void getArray(int[] A ,int[] B,int m,int n){
        int k =m+n-1;
        int i =m-1;
        int j = n-1;
        while(i>=0&&j>=0) {
            if (A[i] >= B[j]) {
                A[k] = A[i];
                k--;
                i--;
            } else {
                A[k] = B[j];
                k--;
                j--;
            }
        }
        while (i>=0){
            A[k]=A[i];
            k--;
            i--;
        }
        while (j>=0){
            A[k]=B[j];
            k--;
            j--;
        }

    }
}
